<template>
  <div class="hello">
    <slot>slot的默认文本首行</slot>
    <h1>{{ msg }}</h1>
    <p>props中的count值：{{ count }}</p>
    <button @click="handler">子组件的button</button><br />

    <!-- v-bind绑定属性与对应的值 -->
    <slot name="foot" :childCount="childCount">slot中foot的文本</slot>
  </div>
</template>

<script>
export default {
  name: "HelloWorld",
  //组件通信
  // 1.父传子，通过 props 作为处理。
  //2,子传父：通过自定义事件处理
  props: {
    //除了可以规定类型以外，还可以规定一些其他的配置项，所以这块也可通过对象方式来。
    msg: String,
    count: {
      type: [String, Number],
      // default:100
      required: true,
    },
  },
  data() {
    return {
      childCount: 134,
    };
  },
  methods: {
    handler() {
      this.childCount++;
      // this.$emit('event-name', param);参数2是事件要传递给父组件的数据。
      this.$emit("child-change-event", this.childCount);
    },
  },
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.hello {
  background-color: #ccc;
}
#app {
  margin: 0;
}
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>
